home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / dev / lang / amigatalk.lha / intuition / Screen.st < prev    next >
Text File  |  2002-04-18  |  5KB  |  191 lines

  1. "---------------------------------------------------------- "
  2. " Screen Class implements control of Amiga Screens          "
  3. " screenModeID = 32-bit display mode ID value               "
  4. " --------------------------------------------------------- "
  5. " NOTE:  The order & number of the Class instance variables "
  6. "        matters to the underlying AmigaTalk code, DO NOT   "
  7. "        CHANGE THEM!                                       "
  8. "---------------------------------------------------------- "
  9.  
  10. Class Screen :Glyph ! private savedTitle screenModeID !
  11. [
  12.    pullScreenUp: numLines    
  13.       "numLines <= 0"
  14.       <primitive 180 5 numLines private>
  15. |     
  16.    pushScreenDown: numLines  
  17.       "numLines >= 0"
  18.       <primitive 180 6 numLines private>
  19. |     
  20.    redrawScreen
  21.       <primitive 180 7 private>
  22. |     
  23.    reOpenScreen
  24.       private <- <primitive 180 8 savedTitle>
  25. |
  26.    displayBeep
  27.       <primitive 180 4 'DisplayBeep' private>
  28. |
  29.    screenToBack
  30.       <primitive 180 4 'ScreenToBack' private>
  31. |
  32.    screenToFront
  33.       <primitive 180 4 'ScreenToFront' private>
  34. |
  35.    turnOffTitle
  36.       <primitive 180 4 'TurnOffTitle' private>
  37. |
  38.    showTitle
  39.       <primitive 180 4 'ShowTitle' private>
  40. |
  41.    setTitle: newTitle
  42.       <primitive 180 3 8 newTitle>.
  43.       savedTitle <- newTitle
  44. |
  45.    setFont: newFontObject
  46.       <primitive 180 3 7 newFontObject>
  47. |
  48.    setBitMap: newBitMapObject
  49.       <primitive 180 3 12 newBitMapObject>
  50. |
  51.    getOrigin
  52.       ^ <primitive 180 2 0 private> @ <primitive 180 2 1 private>
  53. |
  54.    getScreenSize
  55.       ^ <primitive 180 2 2 private> @ <primitive 180 2 3 private>
  56. |
  57.    getScreenPens
  58.       ^ <primitive 180 2 4 private> @ <primitive 180 2 5 private>
  59. |
  60.    getFlags
  61.       ^ <primitive 180 2 6 private>
  62. |
  63.    getType
  64.       ^ <primitive 180 2 11 private>
  65. |
  66.    getViewMode
  67.       ^ <primitive 180 2 10 private>
  68. |
  69.    getTitle
  70.       ^ savedTitle <- <primitive 180 2 8 private>
  71. |
  72.    getDepth
  73.       ^ <primitive 180 2 9 private>
  74. |
  75.    getFontName
  76.       ^ <primitive 180 2 7 private>
  77. |
  78.    getFontObject      
  79.       ^ <primitive 180 2 13 private>
  80. |    
  81.    getBitMap
  82.       ^ <primitive 180 2 12 private> "Returns an Integer (BitMap address)"
  83. |
  84.    getBarHeightSize
  85.       ^ <primitive 180 2 14 private>
  86. |         
  87.    getBarVBorderSize
  88.       ^ <primitive 180 2 15 private>
  89. |         
  90.    getBarHBorderSize
  91.       ^ <primitive 180 2 16 private>
  92. |         
  93.    getMenuVBorderSize
  94.       ^ <primitive 180 2 17 private>
  95. |         
  96.    getMenuHBorderSize
  97.       ^ <primitive 180 2 18 private>
  98. |         
  99.    getWBorTopSize
  100.       ^ <primitive 180 2 19 private>
  101. |         
  102.    getWBorLeftSize
  103.       ^ <primitive 180 2 20 private>
  104. |         
  105.    getWBorRightSize
  106.       ^ <primitive 180 2 21 private>
  107. |         
  108.    getWBorBottomSize
  109.       ^ <primitive 180 2 22 private>
  110. |
  111.    getUserData
  112.       ^ <primitive 180 2 23 private>
  113. |
  114.    getVisualInfo: tagArray                 " tagArray can be nil "
  115.       ^ <primitive 180 13 tagArray private>
  116. |
  117.    disposeVisualInfo: viObj
  118.       <primitive 180 14 viObj>
  119. |
  120.    setScreenPens: pensPoint ! fp bp !
  121.       fp <- pensPoint x.
  122.       bp <- pensPoint y.
  123.  
  124.       <primitive 180 3 4 fp>.
  125.       <primitive 180 3 5 bp>
  126. |
  127.    close
  128.       <primitive 180 0 private>.
  129.       ^ nil
  130. |
  131.    thisScreen
  132.       " Necessary for passing a screen to a tag list (scr thisScreen): "
  133.       ^ private
  134. |
  135.    setScreenModeID: newScreenModeID
  136.       screenModeID <- newScreenModeID
  137. |
  138.    getScreenModeID
  139.       ^ <primitive 180 2 10 private>
  140. |
  141.    open: screenTitle
  142.       private    <- <primitive 180 1 screenModeID screenTitle>.
  143.       savedTitle <- screenTitle
  144. |
  145.    new: newScreenModeID
  146.       (savedTitle isNil)
  147.          ifTrue: [ savedTitle <- 'Default ScreenTitle' ].
  148.  
  149.       private      <- <primitive 180 1 newScreenModeID savedTitle>.
  150.       screenModeID <- newScreenModeID.
  151.       ^ self
  152. |
  153.    openScreen: screenMode title: screenTitle
  154.       savedTitle <- screenTitle.
  155.       self          new: screenMode.
  156.       ^ self
  157. |
  158.    openScreenWithTags: tagArray
  159.       private <- <primitive 180 9 tagArray>.
  160.  
  161.       self getTitle. " This assumes you included an SA_Title tag! "
  162.       
  163.       ^ self
  164. |
  165.    lockPublicScreen: screenName                       " screenName can be nil "
  166.       ^ private <- <primitive 180 11 screenName>
  167. |
  168.    unlockPublicScreen: screenObject named: screenName " screenName can be nil "
  169.       <primitive 180 12 screenName screenObject>
  170. |
  171.    getScreenErrorString: errorNumber
  172.       ^ <primitive 180 10 errorNumber>
  173. |
  174.    selectAndOpenScreen ! atalk aTitle userMode !
  175.       "Show the ScreenMode ASL requester & open selection"
  176.  
  177.       atalk <- AmigaTalk new.
  178.  
  179.       atalk setIOMessage: 'What is the Title of the Screen?'. 
  180.       atalk setIOTitle:   'Enter a Screen Title:'.
  181.  
  182.       aTitle <- atalk getString.
  183.       
  184.       atalk setIOTitle:   'Available Screen Modes:'.
  185.       atalk setIOMessage: aTitle.
  186.  
  187.       userMode <- atalk getScreenModeID.
  188.  
  189.       ^ (self openScreen: userMode title: aTitle)
  190. ]
  191.